package com.wicket.okrframework.integration.dto;

import com.wicket.okrframework.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Objects;


/**
 * @desc DeptDto
 * @使用场景
 */

@Data
public class DeptDto extends BaseDto implements Serializable {

    /**
     * 部门ID:
     */
  @ApiModelProperty("部门ID")
  private String deptId;

    /**
     * 部门标识:
     */
  @ApiModelProperty("部门标识")
  private String deptCode;
    /**
     * 父级部门ID:
     */
  @ApiModelProperty("父级部门ID")
  private String parentDeptId;
    /**
     * 层级:
     */
  @ApiModelProperty("层级")
  private Long levelNumber;
    /**
     * 部门名称（中文）:
     */
  @ApiModelProperty("部门名称（中文）")
  private String deptName;
    /**
     * 组织ID:
     */
  @ApiModelProperty("组织ID")
  private String organizationId;
    /**
     * 是否可创建下级部门:
     */
  @ApiModelProperty("是否可创建下级部门")
  private String isCreateLowerDept;
    /**
     * 排序:
     */
  @ApiModelProperty("排序")
  private Long orderNumber;
    /**
     * 是否有直属成员:
     */
  @ApiModelProperty("是否有直属成员")
  private String isDirectlyMember;
    /**
     * 部门编号:
     */
  @ApiModelProperty("部门编号")
  private String deptNumber;
    /**
     * 部门名称（英文）:
     */
  @ApiModelProperty("部门名称（英文）")
  private String deptEnName;
    /**
     * 部门简称:
     */
  @ApiModelProperty("部门简称")
  private String deptShortName;
    /**
     * 可选分管领导角色成员ID:
     */
  @ApiModelProperty("可选分管领导角色成员ID")
  private String roleMemberId;
    /**
     * 主体生命周期:
     */
  @ApiModelProperty("主体生命周期")
  private String subjectLifeCycle;
    /**
     * 部门类型字典ID:
     */
  @ApiModelProperty("部门类型字典ID")
  private String typeDictionaryId;
/**
     * 主管的就职记录ID
     */
  @ApiModelProperty("主管的就职记录ID")
  private String directorInductionId;
/**
     * 部门职责概述
     */
    @ApiModelProperty("部门职责概述")
    private String	 deptDutyDesc;

    /**
     * 部门目标概述
     */
    @ApiModelProperty("部门目标概述")
    private String	 deptTargetDesc;
/**
     * 党团主管的就职记录ID
     */
    @ApiModelProperty("党团主管的就职记录ID")
    private String	 partyAndYouthDirectorInductionId;
/**
     * 行政主管的姓名
     */
    @ApiModelProperty("行政主管的姓名")
    private String	 directorIdCardName;

    /**
     * 党团主管的姓名
     */
    @ApiModelProperty("党团主管的姓名")
    private String	 partyAndYouthDirectorIdCardName;
/**
     * 通用数值字段（整数型）
     */
    @ApiModelProperty("通用数值字段（整数型）")
    private Long	 comNumField;
/**
     * 类型字典名称
     */
    @ApiModelProperty("类型字典名称")
    private String	 typeDictionaryName;

    @Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      DeptDto that = (DeptDto) o;
      return  deptId == that.deptId&&deptCode == that.deptCode&&parentDeptId == that.parentDeptId&&levelNumber == that.levelNumber&&deptName == that.deptName&&organizationId == that.organizationId&&isCreateLowerDept == that.isCreateLowerDept&&orderNumber == that.orderNumber&&isDirectlyMember == that.isDirectlyMember&&deptNumber == that.deptNumber&&deptEnName == that.deptEnName&&deptShortName == that.deptShortName&&roleMemberId == that.roleMemberId&&subjectLifeCycle == that.subjectLifeCycle&&typeDictionaryId == that.typeDictionaryId&&directorInductionId == that.directorInductionId&&deptDutyDesc == that.deptDutyDesc&&deptTargetDesc == that.deptTargetDesc&&partyAndYouthDirectorInductionId == that.partyAndYouthDirectorInductionId&&directorIdCardName == that.directorIdCardName&&partyAndYouthDirectorIdCardName == that.partyAndYouthDirectorIdCardName&&comNumField == that.comNumField&&typeDictionaryName == that.typeDictionaryName;
    }

    @Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), deptId,deptCode,parentDeptId,levelNumber,deptName,organizationId,isCreateLowerDept,orderNumber,isDirectlyMember,deptNumber,deptEnName,deptShortName,roleMemberId,subjectLifeCycle,typeDictionaryId,directorInductionId,deptDutyDesc,deptTargetDesc,partyAndYouthDirectorInductionId,directorIdCardName,partyAndYouthDirectorIdCardName,comNumField,typeDictionaryName);
    }
}
